Передает управление в процедуру Sub, процедуру Function или процедуру библиотеки динамической компоновки (DLL).
Call имя [списокАргументов]
Параметры
имя
Обязательный. Имя вызываемой
процедуры.
списокАргументов
Необязательный. Разделяемый запятыми
список переменных, массивов или выражений, передаваемых в процедуру. Компоненты
спискаАргументов могут включать ключевые слова ByVal или ByRef для
описания того, каким образом аргументы будут рассматриваться вызываемой
процедурой. Однако ключевые слова ByVal и ByRef могут
использоваться с инструкцией Call только при вызове процедуры из
библиотеки динамической компоновки.
Замечания
Не обязательно применять ключевое слово Call при вызове
процедуры. Однако, если ключевое слово Call используется для вызова
процедуры с аргументами, списокАргументов должен быть заключен в скобки. Если
ключевое слово Call не используется, необходимо также опустить скобки
вокруг спискаАргументов. При использовании синтаксиса Call для вызова как
внутренней, так и определяемой пользователем функции, возвращаемое функцией
значение отбрасывается.
Для передачи в процедуру полного массива следует
воспользоваться именем массива с пустыми скобками.
Пример
В данном примере показано, как использовать инструкцию Call
для передачи управления процедуре Sub, внутренней функции, процедуре
библиотеки динамической компоновки (DLL) и процедуре программного ресурса
Macintosh.
' Вызов процедуры Sub. Call PrintToDebugWindow("Всем привет") ' Предыдущая инструкция передает управление следующей процедуре Sub. Sub PrintToDebugWindow(AnyString) Debug.Print AnyString ' Вывод в окно отладки. End Sub ' Вызов внутренней функции. Значение, возвращаемое этой функцией, ' не используется. Call Shell(AppName, 1) ' AppName содержит путь к выполняемому файлу. ' Вызов процедуры DLL Microsoft Windows. Инструкция Declare должна ' быть личной (Private) в модуле класса, но не в стандартном модуле. Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer) Sub CallMyDll() Call MessageBeep(0) ' Вызов процедуры Windows DLL. MessageBeep 0 ' Повторный вызов без ключевого слова Call. End Sub ' Вызов программного ресурса Macintosh. Declare Sub MessageAlert Lib "MyHd:MyAlert" Alias "MyAlert" (ByVal N _ As Integer) Sub CallMyCodeResource() Call MessageAlert(0) ' Вызов программного ресурса Macintosh. MessageAlert 0 ' Повторный вызов без ключевого слова Call. End Sub